package com.mzkj.wanjulaile.mobile.api.modules.account.service;

import com.mzkj.wanjulaile.mobile.api.modules.account.entity.Account;
import com.mzkj.wanjulaile.mobile.api.modules.account.entity.BuyVip;
import com.mzkj.wanjulaile.mobile.api.modules.account.entity.VipScheme;
import com.mzkj.wanjulaile.mobile.api.modules.order.entity.Order;
import com.mzkj.wanjulaile.mobile.api.modules.weChat.entity.NotifyReturnData;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by wangxw on 2016/12/12.
 */
public interface BuyVipService {

     Boolean insert(BuyVip buyVip);

     Map<String, Object> verifyAccount(Account account, VipScheme vipScheme, String accountCouponId);

     void setAccountInfo(Account account, BuyVip buyVip);

     void syncBuyVipStatus();

     BuyVip getByPayNumber(String payNumber);

     int updatePayStatus(BuyVip buyVip);

     int updateRefundStatus(String id);

     BuyVip findTempVipByAccountId(String accountId);

     void createTempWeekVipBuy(BuyVip buyVip);

     Date findMaxDeadTimeByAccountId(String accountId);

     BuyVip get(String id);

     void save2(BuyVip buyVip);
     void setAccountVipActiveTime(Order order, Account account, BuyVip curBuyVip);

     Date setAccountUpVipSpan(Account account, VipScheme vipScheme, VipScheme lastVipScheme, Integer fee);

     BuyVip findDepositByAccountId(String accountId);

     List<BuyVip> findListByAccountId(String id);

     BuyVip getSimple(BuyVip curBuyVip);

     void updateOrderVipInfo(Order order,Account account,BuyVip curBuyVip);

     void updateOrderVipInfoByWXPay(Order order, Account account, BuyVip curBuyVip, NotifyReturnData returnData);

     void updateAccountVipInfo(Account account , BuyVip buyVip,NotifyReturnData returnData);


}
